Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lots of updates #50

Merged
merged 28 commits into from
Sep 28, 2023
Merged

Lots of updates #50

merged 28 commits into from
Sep 28, 2023

Conversation

jetuk
Copy link
Member

@jetuk jetuk commented Sep 22, 2023

This is a bit of development branch I've been working on:

  • Updates to the benchmarks
    • Randomise costs.
    • Add benchmarks for IPM convergence and lots of scenarios.
    • Move the random model generation code into the test_utils module.
  • Port of the IPM solver to SIMD using portable_simd
  • Updates to solver feature gates.
  • Updates to OpenCL IPM solver.

jetuk added 26 commits August 23, 2023 13:21
New solver using SIMD types from the portable_simd project. This
currently requires nightly to build. It is a port of the existing
OpenCL IPM solver to Rust using SIMD. It is written using f64x4
types which will require the AVX2 instruction set.

Included is a genral refactor of the OCL IPM solver to improve
feature gating and code sharing with the SIMD solver.

Some tweaks to benchmark code.
Initial commit of SolverFeature.
Update benchmarking code to only time the simulation, and not
the seutp of the state / solvers.
Main solver is generic to the floating point type and the number
of lanes. The implemented solver is generic only for the number
of lanes.

Revised benchmarks to test differing lane sizes.
- Use u8 for solve status (reduces memory required)
- Put iteration loop in the kernel.
- Use num_chunks instead of chunk_size in OCL settings.
- Update random models to only create data for the requested
number of time-steps.
@jetuk jetuk requested a review from Batch21 September 22, 2023 15:16
@jetuk jetuk merged commit 33efe4e into main Sep 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant